---
title: lefthook
description: Kør Ultracite automatisk på dine iscenesatte Git-filer med lefthook
---

Ultracite tilbyder sømløs integration med [lefthook](https://lefthook.dev/), en hurtig og kraftfuld Git hooks manager. Denne integration opsætter automatisk pre-commit hooks for at sikre, at din kode er korrekt formateret før hvert commit.

## Hvad er lefthook?

lefthook er en hurtig native Git hooks manager til Node.js- og Go-projekter. Den er designet til at være enkel, hurtig og kraftfuld, så du kan administrere Git hooks på tværs af dit team med konfigurationsfiler, der kan committes til dit repository.

## Hvordan Ultracite bruger lefthook

Når du initialiserer Ultracite i dit projekt, kan det automatisk konfigurere lefthook til at køre kodeformatering før hvert commit. Dette sikrer, at:

- Al committet kode følger ensartede formateringsstandarder
- Kodekvalitetskontroller håndhæves automatisk
- Teammedlemmer ikke behøver at huske at formatere kode manuelt
- Dit repository bevarer en ren og konsistent kodestil

## Pre-commit-hook-adfærd

Ultracites lefthook-integration opretter en pre-commit-hook, der kører følgende kommando:

```bash
npx ultracite fix
```

Denne kommando:
- Kører Biome's linter og formatter på din kodebase
- Retter automatisk formateringsproblemer, hvor det er muligt
- Sikrer, at alle iscenesatte filer opfylder dit projekts kodestandarder
- Forhindrer commits, der ville introducere formateringsinkonsistenser

## Automatisk opsætning

Under initialiseringsprocessen (`ultracite init`), hvis du vælger lefthook-indstillingen, vil Ultracite:

1. **Installerer lefthook**: Tilføjer lefthook som en udviklingsafhængighed til dit projekt
2. **Initialiserer lefthook**: Kører `lefthook install` for at sætte Git hooks op
3. **Opretter konfiguration**: Opretter `lefthook.yml`-filen med formateringskommandoen
4. **Håndterer eksisterende opsætninger**: Hvis du allerede har lefthook konfigureret, opdaterer det din eksisterende konfiguration i stedet for at overskrive den

## Integrationsdetaljer

Lefthook-integrationen inkluderer flere smarte funktioner:

### Afhængighedsstyring
- Installerer automatisk lefthook som en dev-afhængighed ved hjælp af dit projekts package manager
- Bruger den passende package manager-kommando (`npm install -D`, `yarn add -D`, `pnpm add -D`, osv.)
- Kører `lefthook install` for at initialisere Git hooks

### Konfigurationsstyring
- **Nye projekter**: Opretter en ny `lefthook.yml`-fil med ultracite fix-kommandoen
- **Eksisterende projekter**: Tilføjer Ultracite-kommandoen til din eksisterende lefthook-konfiguration og bevarer andre hooks, du måtte have konfigureret

### Filstruktur
Integration opretter eller modificerer:
```
lefthook.yml    # Contains the formatting command configuration
```

## Fordele

- **Teamkonsistens**: Hvert teammedlem får den samme formatering anvendt automatisk
- **Ingen konfiguration**: Virker direkte med fornuftige standardindstillinger
- **Høj ydeevne**: lefthook er skrevet i Go og er ekstremt hurtigt
- **Fleksibilitet**: Let at udvide med yderligere kommandoer og hooks
- **Platformuafhængig**: Fungerer konsekvent på tværs af forskellige operativsystemer

## Integration i arbejdsgangen

Lefthook-integrationen passer sømløst ind i din udviklingsarbejdsgang:

1. **Udvikler foretager ændringer** til kodefiler
2. **Iscenesætter filer** til commit med `git add`
3. **Forsøger at committe** med `git commit`
4. **lefthook udløser** pre-commit-hooken automatisk
5. **Ultracite kører** og formaterer de iscenesatte filer
6. **Commit fortsætter**, hvis formateringen lykkes, eller **fejler**, hvis der er problemer, som ikke kunne rettes automatisk

## Tilpasning

Selvom Ultracite sætter fornuftige standarder op, kan du tilpasse adfærden:

- Ændr `lefthook.yml` for at tilføje yderligere kommandoer eller hooks
- Konfigurer Biome-indstillinger for at justere formateringsregler
- Tilføj andre pre-commit checks sammen med Ultracite's formatering
- Brug lefthook's kraftfulde parallelle udførelses- og betingelsesfunktioner

## Fejlfinding

### Hook kører ikke
Hvis pre-commit-hooken ikke eksekveres:
- Sørg for, at lefthook er installeret: `npm ls lefthook`
- Tjek, at `lefthook.yml` eksisterer og indeholder ultracite-kommandoen
- Bekræft, at Git hooks er aktiveret i dit repository
- Kør `lefthook install` for at geninstallere hooks

### Tilladelsesproblemer
lefthook håndterer Git hook-tilladelser automatisk, men hvis du oplever problemer:
- Prøv at køre `lefthook install` igen
- Tjek, at din Git-konfiguration tillader hooks

### Omgå hooks
I sjældne tilfælde, hvor du har brug for at springe pre-commit-hooken over:
```bash
git commit --no-verify
```

Brug dette med måde, da det omgår den automatiserede formatering, som holder din kodebase konsekvent.

## Konfigurationseksempel

Her er, hvordan `lefthook.yml`-konfigurationen ser ud:

```yaml
pre-commit:
  jobs:
    - run: npx ultracite fix
      glob: 
        - "*.js"
        - "*.jsx"
        - "*.ts"
        - "*.tsx"
        - "*.json"
        - "*.jsonc"
        - "*.css"
      stage_fixed: true
```

Denne konfiguration:
- Kører kun på JavaScript-, TypeScript-, JSON- og CSS-filer
- Tilføjer automatisk de filer, der blev rettet, til staging
- Bruger den effektive `jobs`-syntaks for bedre ydeevne

Du kan udvide denne konfiguration til at inkludere yderligere jobs:

```yaml
pre-commit:
  jobs:
    - run: npx ultracite fix
      glob: 
        - "*.js"
        - "*.jsx"
        - "*.ts"
        - "*.tsx"
        - "*.json"
        - "*.jsonc"
        - "*.css"
      stage_fixed: true
    - run: npm test
      glob: "*.{js,ts}"
    - run: tsc --noEmit
      glob: "*.{ts,tsx}"
```